//
//  TalksTableViewController.h
//  ENTBoostChat
//
//  Created by zhong zf on 14-8-2.
//  Copyright (c) 2014年 EB. All rights reserved.
//

#import <UIKit/UIKit.h>
#import "ENTBoostChat.h"

@class EBMessage;
@class EBCallInfo;
@class EBVCard;
@class TalkViewController;
@class MainViewController;

@interface TalksTableViewController : UITableViewController<UITableViewDelegate, UITableViewDataSource>

@property(weak, nonatomic) MainViewController* tabBarController; //tabBar控制器

@property(strong, nonatomic) NSMutableDictionary* p2pTalkViewControllesrs; //一对一会话聊天控制器
@property(strong, nonatomic) NSMutableDictionary* groupTalkViewControllers; //群组聊天控制器

@property(strong, nonatomic) NSMutableArray* talkIds; //历史记录队列

//分发处理收到的聊天消息
- (void)dispatchReceviedMessage:(EBMessage*)message;

/**更新调整表视图显示顺序
 * @param talkId 对话归类编号
 */
- (void)adjustTableViewWithTalkId:(NSString*)talkId;

/**更新对话未读提示
 * @param talkId 对话归类编号
 */
- (void)updateBadgeWithTalkId:(NSString*)talkId;

/**处理会话应答事件
 * @param callInfo 会话对象
 * @param actionType 会话状态类型
 */
- (void)handleCall:(const EBCallInfo*)callInfo callActionType:(CALL_ACTION_TYPE)callActionType;

/**处理会话应答事件
 * @param callInfo 会话对象
 */
- (void)handleCallHangup:(const EBCallInfo*)callInfo;

/**处理发起邀请会话事件
 * @param callInfo 会话对象
 * @param toUid 对方用户编号
 */
- (void)handleCallAlerting:(const EBCallInfo*)callInfo toUid:(uint64_t)toUid;

/**处理被邀请会话事件
 * @param callInfo 会话对象
 * @param fromUid 邀请方用户编号
 * @param fromAccount 邀请方用户账号
 * @param vCard 电子名片 邀请方电子名片
 * @param clientAddress 邀请方客户端地址
 */
- (void)handleCallIncoming:(const EBCallInfo *)callInfo fromUid:(uint64_t)fromUid fromAccount:(NSString *)fromAccount vCard:(EBVCard *)vCard clientAddress:(NSString *)clientAddress;

@end
